#ifndef WXSFLAGS_H
#define WXSFLAGS_H


namespace wxsFlags {
  // Property filtering flags
  const long flVariable  = 0x0000001;  ///< \brief Item is using variable
  const long flId        = 0x0000002;  ///< \brief Item is using identifier
  const long flPosition  = 0x0000004;  ///< \brief Item is using position
  const long flSize      = 0x0000008;  ///< \brief Item is using size
  const long flEnabled   = 0x0000010;  ///< \brief Item is using Enabled property
  const long flFocused   = 0x0000020;  ///< \brief Item is using Focused property
  const long flHidden    = 0x0000040;  ///< \brief Item is using Hidden property
  const long flColours   = 0x0000080;  ///< \brief Item is using colour properties (Fg and Bg)
  const long flToolTip   = 0x0000100;  ///< \brief Item is using tooltips
  const long flFont      = 0x0000200;  ///< \brief Item is using font
  const long flHelpText  = 0x0000400;  ///< \brief Item is using help text
  const long flSubclass  = 0x0000800;  ///< \brief Item is using subclassing
  const long flMinMaxSize = 0x0001000; ///< \brief Item is using SetMinSize / SetMaxSize functions
  const long flExtraCode = 0x0002000;  ///< \brief Item is using extra item initialization code
  const long flValidator = 0x0004000;
  const long flFile      = 0x8000000;  ///< \brief Edition in file mode
  const long flSource    = 0x4000000;  ///< \brief Edition in source mode
  const long flMixed     = 0x2000000;  ///< \brief Edition in mixed mode
  const long flFwdDeclar = 0x1000000;  ///< \brief Using forward declarations where possible
  const long flPchFilter = 0x0800000;  ///< \brief Use filtering of PCH files (include some headers only when there's no PCH)
  const long flPointer   = 0x0400000;  ///< \brief Flag set when current item is as pointer
  const long flLocal     = 0x0200000;  ///< \brief Flag set when current item is used only locally while building resource's content (is not member of class)
  const long flRoot      = 0x0100000;
  const long flWidget    = flVariable
                           | flId
                           | flPosition
                           | flSize
                           | flEnabled
                           | flFocused
                           | flHidden
                           | flColours
                           | flToolTip
                           | flFont
                           | flHelpText
                           | flSubclass
                           | flMinMaxSize
                           | flExtraCode
                           | flValidator;
  const long flContainer = flVariable
                           | flId
                           | flPosition
                           | flSize
                           | flEnabled
                           | flFocused
                           | flHidden
                           | flColours
                           | flToolTip
                           | flFont
                           | flHelpText
                           | flSubclass
                           | flMinMaxSize
                           | flExtraCode;
  // Preview flags
  const long pfExact     = 0x0000001;
  // Header flags
  const long hfLocal     = 0x0000001;  ///< \brief Header is needed only locally (while manually generating resource)
  const long hfInPCH     = 0x0000002;  ///< \brief This header has been included in default pch file
  const long hfForbidFwd = 0x0000004;  ///< \brief This header (when included in resource's header file) can not be replaced by forward declaration
}

#endif
